import 'package:flutter/material.dart';
import 'package:xiaofanshu_flutter/utils/guide_service.dart';
import 'package:xiaofanshu_flutter/components/custom_guide_widget.dart';

/// 引导配置 - 集中管理所有页面的引导内容
class GuideConfig {
  
  /// 创建首页引导目标
  static List<GuideStep> createHomeGuideTargets({
    required GlobalKey recommendTabKey,
    required GlobalKey attentionTabKey,
    required GlobalKey nearbyTabKey,
    required GlobalKey searchKey,
  }) {
    return [
      // 引导1: 推荐选项卡
      GuideService.createGuideStep(
        targetKey: recommendTabKey,
        title: '推荐',
        description: '这里展示为您精心推荐的精彩故事内容，根据您的兴趣智能推荐。'
            '每次刷新都会为您发现新的有趣故事！',
        icon: Icons.recommend,
      ),
      
      // 引导2: 关注选项卡
      GuideService.createGuideStep(
        targetKey: attentionTabKey,
        title: '关注',
        description: '查看您关注的用户发布的最新故事动态。'
            '不错过任何一个精彩瞬间！',
        icon: Icons.favorite,
      ),
      
      // 引导3: 附近选项卡
      GuideService.createGuideStep(
        targetKey: nearbyTabKey,
        title: '附近',
        description: '发现您周围的精彩故事。'
            '看看附近的朋友都在分享什么有趣的内容吧！',
        icon: Icons.location_on,
      ),
      
      // 引导4: 搜索按钮
      GuideService.createGuideStep(
        targetKey: searchKey,
        title: '搜索功能',
        description: '点击这里可以搜索您感兴趣的故事、用户或话题。'
            '快速找到想看的内容！',
        icon: Icons.search,
      ),
    ];
  }

  /// 创建故事地图引导目标
  static List<GuideStep> createStoryMapGuideTargets({
    GlobalKey? zoomInKey,
    GlobalKey? zoomOutKey,
    GlobalKey? filterKey,
    GlobalKey? nearbyStoryKey,
  }) {
    List<GuideStep> steps = [];
    
    // 引导1: 缩放控制
    if (zoomInKey != null) {
      steps.add(
        GuideService.createGuideStep(
          targetKey: zoomInKey,
          title: '地图缩放',
          description: '使用这些按钮可以放大或缩小地图视图。'
              '您也可以使用双指手势来缩放地图，更方便地查看故事位置。',
          icon: Icons.zoom_in,
        ),
      );
    }
    
    // 引导2: 筛选功能
    if (filterKey != null) {
      steps.add(
        GuideService.createGuideStep(
          targetKey: filterKey,
          title: '筛选故事',
          description: '点击这里可以按照故事分类和路线进行筛选。'
              '帮助您快速找到感兴趣的故事类型！',
          icon: Icons.filter_list,
        ),
      );
    }
    
    // 引导3: 附近故事
    if (nearbyStoryKey != null) {
      steps.add(
        GuideService.createGuideStep(
          targetKey: nearbyStoryKey,
          title: '附近故事',
          description: '点击这里可以查看您附近的故事列表。'
              '发现身边正在发生的精彩瞬间！',
          icon: Icons.near_me,
        ),
      );
    }
    
    return steps;
  }

  /// 创建消息页引导目标
  static List<GuideStep> createMessageGuideTargets({
    GlobalKey? likeAndCollectKey,
    GlobalKey? followKey,
    GlobalKey? commentKey,
    GlobalKey? chatKey,
  }) {
    List<GuideStep> steps = [];
    
    // 引导1: 点赞和收藏
    if (likeAndCollectKey != null) {
      steps.add(
        GuideService.createGuideStep(
          targetKey: likeAndCollectKey,
          title: '点赞和收藏',
          description: '这里可以查看收到的点赞和收藏提醒。'
              '及时了解大家对您故事的喜爱！',
          icon: Icons.favorite_border,
        ),
      );
    }
    
    // 引导2: 关注消息
    if (followKey != null) {
      steps.add(
        GuideService.createGuideStep(
          targetKey: followKey,
          title: '新增关注',
          description: '这里显示关注您的用户列表。'
              '看看谁对您的故事感兴趣吧！',
          icon: Icons.person_add,
        ),
      );
    }
    
    // 引导3: 评论消息
    if (commentKey != null) {
      steps.add(
        GuideService.createGuideStep(
          targetKey: commentKey,
          title: '评论消息',
          description: '这里可以查看收到的评论消息。'
              '及时回复大家的评论，增进互动！',
          icon: Icons.comment,
        ),
      );
    }
    
    // 引导4: 聊天消息
    if (chatKey != null) {
      steps.add(
        GuideService.createGuideStep(
          targetKey: chatKey,
          title: '聊天消息',
          description: '这里显示聊天消息列表。'
              '点击进入聊天，左滑可以删除对话。轻松管理您的聊天记录！',
          icon: Icons.chat,
        ),
      );
    }
    
    return steps;
  }

  /// 创建我的页面引导目标
  static List<GuideStep> createMineGuideTargets({
    GlobalKey? editButtonKey,
    GlobalKey? settingsKey,
    GlobalKey? levelKey,
    GlobalKey? achievementKey,
    GlobalKey? storyTabKey,
    GlobalKey? collectTabKey,
    GlobalKey? likeTabKey,
    GlobalKey? routeTabKey,
  }) {
    List<GuideStep> steps = [];
    
    // 引导1: 编辑按钮
    if (editButtonKey != null) {
      steps.add(
        GuideService.createGuideStep(
          targetKey: editButtonKey,
          title: '编辑资料',
          description: '点击这里可以编辑您的个人信息。'
              '修改头像、昵称、简介等，展示独特的个人魅力！',
          icon: Icons.edit,
        ),
      );
    }
    
    // 引导2: 设置按钮
    if (settingsKey != null) {
      steps.add(
        GuideService.createGuideStep(
          targetKey: settingsKey,
          title: '设置',
          description: '点击这里进入设置页面。'
              '可以修改密码、管理账号安全等功能。',
          icon: Icons.settings,
        ),
      );
    }
    
    // 引导3: 等级
    if (levelKey != null) {
      steps.add(
        GuideService.createGuideStep(
          targetKey: levelKey,
          title: '等级系统',
          description: '点击这里查看您的等级和经验值详情。'
              '发布故事、互动交流都能获得经验，快来升级吧！',
          icon: Icons.stars,
        ),
      );
    }
    
    // 引导4: 成就
    if (achievementKey != null) {
      steps.add(
        GuideService.createGuideStep(
          targetKey: achievementKey,
          title: '成就系统',
          description: '点击这里查看您获得的成就徽章。'
              '完成各种挑战，解锁专属成就！',
          icon: Icons.emoji_events,
        ),
      );
    }
    
    // 引导5: 故事选项卡
    if (storyTabKey != null) {
      steps.add(
        GuideService.createGuideStep(
          targetKey: storyTabKey,
          title: '我的故事',
          description: '这里展示您发布的所有故事内容。'
              '管理和查看您的创作作品！',
          icon: Icons.auto_stories,
        ),
      );
    }
    
    // 引导6: 收藏选项卡
    if (collectTabKey != null) {
      steps.add(
        GuideService.createGuideStep(
          targetKey: collectTabKey,
          title: '我的收藏',
          description: '这里展示您收藏过的精彩故事。'
              '随时回顾喜欢的内容！',
          icon: Icons.bookmark,
        ),
      );
    }
    
    // 引导7: 点赞选项卡
    if (likeTabKey != null) {
      steps.add(
        GuideService.createGuideStep(
          targetKey: likeTabKey,
          title: '我的点赞',
          description: '这里展示您点赞过的故事内容。'
              '重温那些打动您的精彩瞬间！',
          icon: Icons.thumb_up,
        ),
      );
    }
    
    // 引导8: 路线选项卡
    if (routeTabKey != null) {
      steps.add(
        GuideService.createGuideStep(
          targetKey: routeTabKey,
          title: '故事路线',
          description: '这里可以管理您创建的故事路线。'
              '规划您的旅程，串联精彩故事！',
          icon: Icons.route,
        ),
      );
    }
    
    return steps;
  }

  /// 创建底部导航栏引导目标
  static List<GuideStep> createBottomNavGuideTargets({
    required GlobalKey homeTabKey,
    required GlobalKey storyMapTabKey,
    required GlobalKey publishTabKey,
    required GlobalKey messageTabKey,
    required GlobalKey mineTabKey,
  }) {
    return [
      // 引导1: 首页
      GuideService.createGuideStep(
        targetKey: homeTabKey,
        title: '首页',
        description: '这里是应用的首页，浏览推荐、关注和附近的故事。',
        icon: Icons.home,
      ),
      
      // 引导2: 故事地图
      GuideService.createGuideStep(
        targetKey: storyMapTabKey,
        title: '故事地图',
        description: '在地图上查看和探索附近的故事，发现身边的精彩！',
        icon: Icons.map,
      ),
      
      // 引导3: 发布按钮
      GuideService.createGuideStep(
        targetKey: publishTabKey,
        title: '发布故事',
        description: '点击这里可以发布图文故事、视频故事或创建故事路线。'
            '分享您的精彩瞬间！',
        icon: Icons.add_circle,
      ),
      
      // 引导4: 消息
      GuideService.createGuideStep(
        targetKey: messageTabKey,
        title: '消息中心',
        description: '查看点赞、收藏、评论和聊天消息。'
            '及时与粉丝和朋友互动！',
        icon: Icons.message,
      ),
      
      // 引导5: 我的
      GuideService.createGuideStep(
        targetKey: mineTabKey,
        title: '我的',
        description: '管理您的个人信息、查看发布的故事和收藏的内容。',
        icon: Icons.person,
      ),
    ];
  }
}

